1. Field of the Invention
The present invention relates generally to a computer implemented method, apparatus, and computer code products for a data processing system. More specifically, the present invention relates to systems, methods and computer code products for a data processing system using user-specified install locations for installing software virtual product data.
2. Description of the Related Art
Typically before software is installed to a computer, the software is stored in a condensed form intended to ease the packaging and delivery of the software. This condensed form requires fewer resources for shipping or downloading that does the final installed version of the software. For example, software that is purchased online and is downloaded to a computer will require less time and bandwidth in its condensed form that in its expanded. In order to be used, the software must be expanded, or “unpacked,” and the relevant information placed into corresponding directories and path locations on the computer. To expand these condensed software into a readable format, operating systems and other software applications, execute an installer or package management system (collectively referred to hereinafter as “installer” or “installers”). The installer automates the requisite processes for the installation of the software.
In addition to the software, packages often include other important information, such as the name of the software, a description of the software's purpose, the version number of the software, the name of the software vendor, checksum information, and a list of other dependencies that are required for the software to run properly. Collectively, this metadata is referred to as the software virtual product data (hereinafter referred to as “product data”). The product data is entered into a location connection object class database. The location connection object class database contains all of the other install locations that currently exist in the system and the product data associated with the software at that location, so that a global view of the data software installed in the data system can be obtained.
Product data, and most other deliverables, are installed via an absolute path. A path is the general form of a file or directory name, giving a file's name and its unique location in a file system. Paths point to their location using directories, and subdirectories until the destination is reached. This is conventionally shown using directory, subdirectory, and file names, separated by a delimiting character, most commonly the slash “/” or backslash character “\”.
A path can be either absolute or relative. An absolute path is usually written in reference to a root directory. The absolute path points to the same location in the file system regardless of the working directory or combined paths. By comparison, a relative path is relative to the current working directory and not to the root directory. A relative path can be visualized as the difference between the absolute path and the current working directory.
Consider the following example:
Your current working directory is:                /users/eddie/        
You want to change your current working directory to:                /users/eddie/newdirectory        
The relative path from the directory /users/eddie to the directory /users/eddie/newdirectory is:                /newdirectory        
The absolute path from the directory /users/eddie to the directory /users/eddie/newdirectory is:                /users/eddie/newdirectory        
Product data, and most other deliverables, are installed via an absolute path. Installers utilizing only absolute paths are unable to install several instances of the same file set on a single system. Naming conventions for the file sets will cause subsequently installed file sets to overwrite those that were previously installed. Likewise, it is not possible for installers utilizing only absolute paths to install different versions of the same file set on a single system.
Installers utilizing only absolute paths are unable to install a file set that sends files to shared components in a shared operating system environment. Naming conventions for the file sets will cause subsequently installed file sets to overwrite those that were previously installed. File sets installed by one user would be overwritten by file sets installed by a second user.
It is difficult to integrate or detach an absolute path installed application from the system. Product data stored within the location connection object class database must be removed piecemeal and repackaged with the installed software for provisioning to another system. This situation makes it impossible, or at least very difficult, to provision preinstalled applications.